﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TakbisBilgiSorgu_v1.wsUygulamaYetkiServis;
using TakbisBilgiSorgu_v1.wsUygulamaTakbisServis;
using System.Configuration;
using System.Text;

namespace TakbisBilgiSorgu_v1
{
    public partial class SFTuzelKisiRehinAlacakliIslemleri : System.Web.UI.Page
    {
        UygulamaYetkiServis uygulamaYetkiServis = new UygulamaYetkiServis();
        UygulamaTakbisServis uygulamaTakbisServis = new UygulamaTakbisServis();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    if (((Kullanici)Session["kullanici"]) == null)
                    {
                        MesajVer(ConfigurationManager.AppSettings["GirisYapmalisinizMesaji"].ToString());
                        Response.Redirect("Login.aspx");
                    }
                    else
                    {
                        if (!uygulamaYetkiServis.GrupYetkiVarMiKontrolYeni(((Kullanici)Session["kullanici"]).GrupID, "SFTuzelKisiRehinAlacakliIslemleri.aspx") || ((Kullanici)Session["kullanici"]).AktifMi != 1)
                        {
                            MesajVer(ConfigurationManager.AppSettings["YetkinizYokMesaji"].ToString());
                            Response.Redirect("AnaSayfa.aspx");
                        }
                        else
                        {
                            divGetirTuzelKisiBilgi.Visible = false;
                            divGetirTuzelKisiBilgiIDden.Visible = false;
                            divgvTuzelKisi.Visible = false;
                            divgvRehin.Visible = false;
                            Session["TuzelKisiRehinTapuBolumDurum"] = TapuBolumDurum.Aktif;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["YetkiServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                divGetirTuzelKisiBilgiIDden.Visible = true;
                divGetirTuzelKisiBilgi.Visible = false;
                divgvTuzelKisi.Visible = false;
                divgvRehin.Visible = false;
                divTuzelKisiSorgulamaKriter.Visible = false;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            try
            {
                divGetirTuzelKisiBilgiIDden.Visible = false;
                divGetirTuzelKisiBilgi.Visible = true;
                divgvTuzelKisi.Visible = false;
                divgvRehin.Visible = false;
                divTuzelKisiSorgulamaKriter.Visible = false;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void btnTuzelKisiID_Click(object sender, EventArgs e)
        {
            try
            {
                if (uygulamaYetkiServis.BosDegerMi(txtTuzelKisiID.Text.Trim()) && uygulamaYetkiServis.SqlInjectionControl(txtTuzelKisiID.Text.Trim()))
                {
                    Session["tuzelKisiBilgiList"] = new List<TuzelKisiBilgi>();
                    Session["tuzelKisiBilgi"] = uygulamaTakbisServis.GetirTuzelKisiBilgiIDDen(Convert.ToDecimal(txtTuzelKisiID.Text.Trim()), ((Kullanici)Session["kullanici"]).ID);
                    if (Session["tuzelKisiBilgi"] != null)
                        ((List<TuzelKisiBilgi>)Session["tuzelKisiBilgiList"]).Add((TuzelKisiBilgi)Session["tuzelKisiBilgi"]);
                    if (Session["tuzelKisiBilgiList"] == null || ((List<TuzelKisiBilgi>)Session["tuzelKisiBilgiList"]).Count == 0)
                        MesajVer("Sorgulanan Tüzel Kişi Bulunamadı.");
                    else
                    {
                        gvTuzelKisi.DataSource = Session["tuzelKisiBilgiList"];
                        gvTuzelKisi.DataBind();
                        ViewState["tuzelKisiBilgiList"] = Session["tuzelKisiBilgiList"];
                        divgvTuzelKisi.Visible = true;
                        divgvRehin.Visible = false;
                    }
                }
                else
                    MesajVer("Sorgulama Kriterini Kontrol Edip Lütfen Tekrar Deneyin.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnTuzelKisiGetir_Click(object sender, EventArgs e)
        {
            try
            {
                TuzelKisiBilgi[] tuzelKisiBilgiArray = uygulamaTakbisServis.GetirTuzelKisiBilgi(SorguTip.RehinAlacakli,
                txtAd.Text.Trim(),
                txtSicilNo.Text.Trim(),
                txtVergiNo.Text.Trim(),
                (TapuBolumDurum)Enum.Parse(typeof(TapuBolumDurum), ddlTapuBolumDurum.SelectedItem.Value.ToString()),
                (BolgeTip)Enum.Parse(typeof(BolgeTip), ddlBolgeTip.SelectedItem.Value.ToString()),
                (Convert.ToByte(ddlBolgeTip.SelectedItem.Value) != 0 ? Convert.ToInt64(txtBolgeID.Text.Trim()) : 0),
                TasinmazTip.Hepsi,
                ((Kullanici)Session["kullanici"]).ID);
                if (tuzelKisiBilgiArray != null && tuzelKisiBilgiArray.Count() != 0)
                    Session["tuzelKisiBilgiList"] = tuzelKisiBilgiArray.ToList();
                else
                    Session["tuzelKisiBilgiList"] = null;

                if (Session["tuzelKisiBilgiList"] == null || ((List<TuzelKisiBilgi>)Session["tuzelKisiBilgiList"]).Count == 0)
                    MesajVer("Sorgulanan Tüzel Kişi Bulunamadı.");
                else
                {
                    gvTuzelKisi.DataSource = Session["tuzelKisiBilgiList"];
                    gvTuzelKisi.DataBind();
                    ViewState["tuzelKisiBilgiList"] = Session["tuzelKisiBilgiList"];
                    divgvTuzelKisi.Visible = true;
                    divgvRehin.Visible = false;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void btnTuzelKisiExceleYaz_Click(object sender, EventArgs e)
        {
            try
            {
                if (gvTuzelKisi.Rows.Count != 0)
                {
                    byte[] data = uygulamaTakbisServis.TuzelKisiExceleYaz(((List<TuzelKisiBilgi>)Session["tuzelKisiBilgiList"]).ToArray());
                    Response.Clear();
                    Response.ClearHeaders();
                    Response.ClearContent();
                    Response.AddHeader("content-disposition", "attachment;filename=Rapor.xls");
                    Response.AddHeader("Content-Type", "application/Excel");
                    Response.ContentEncoding = Encoding.GetEncoding("Windows-1252");
                    Response.ContentType = "application/vnd.xls";
                    Response.AddHeader("Content-Length", data.Length.ToString());
                    Response.BinaryWrite(data);
                    Response.Flush();
                    Response.End();
                }
                else
                    MesajVer(ConfigurationManager.AppSettings["YazdirilacakKayitYok"].ToString());
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void SecilenTuzelKisileriGetir()
        {
            Session["secilenTuzelKisiBilgilist"] = new List<TuzelKisiBilgi>();
            for (int i = 0; i < gvTuzelKisi.Rows.Count; i++)
            {
                CheckBox chkRow = (gvTuzelKisi.Rows[i].Cells[0].FindControl("CheckBoxTuzelKisiBilgi") as CheckBox);
                if (chkRow.Checked)
                    ((List<TuzelKisiBilgi>)Session["secilenTuzelKisiBilgilist"]).Add(((List<TuzelKisiBilgi>)Session["tuzelKisiBilgiList"]).Find(ii => ii.TuzelKisiID == Convert.ToDecimal((gvTuzelKisi.Rows[i].Cells[0].FindControl("TuzelKisiID") as Label).Text)) as TuzelKisiBilgi);
            }
        }

        protected void btnRehinGetir_Click(object sender, EventArgs e)
        {
            try
            {
                SecilenTuzelKisileriGetir();
                if (Session["secilenTuzelKisiBilgilist"] != null)
                {
                    Session["secilenTuzelKisiRehinleri"] = new List<RehinBilgi>();
                    foreach (TuzelKisiBilgi tuzelKisiBilgi in ((List<TuzelKisiBilgi>)Session["secilenTuzelKisiBilgilist"]))
                        ((List<RehinBilgi>)Session["secilenTuzelKisiRehinleri"]).AddRange(uygulamaTakbisServis.GetirRehinBilgiKisiTipKisiIDden(MalikTip.TuzelKisi, tuzelKisiBilgi.TuzelKisiID, (TapuBolumDurum)Session["TuzelKisiRehinTapuBolumDurum"], BolgeTip.TumTurkiye, 0, ((Kullanici)Session["kullanici"]).ID).ToList());
                    if (Session["secilenTuzelKisiRehinleri"] == null || ((List<RehinBilgi>)Session["secilenTuzelKisiRehinleri"]).Count == 0)
                        MesajVer("Seçilen Tüzel Kişiye Bağlı Rehin Bulunmamaktadır.");
                    else
                    {
                        ViewState["secilenTuzelKisiRehinleri"] = (List<RehinBilgi>)Session["secilenTuzelKisiRehinleri"];
                        gvRehin.DataSource = (List<RehinBilgi>)Session["secilenTuzelKisiRehinleri"];
                        gvRehin.DataBind();
                        divgvRehin.Visible = true;
                    }
                }
                else
                    MesajVer("Tüzel Kişi Seçip Lütfen Tekrar Deneyiniz.");
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["TakbisServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void rbRehinAktif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbRehinAktif.Checked == true)
                {
                    rbRehinPasif.Checked = false;
                    rbRehinHepsi.Checked = false;
                    Session["TuzelKisiRehinTapuBolumDurum"] = TapuBolumDurum.Aktif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbRehinPasif_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbRehinPasif.Checked == true)
                {
                    rbRehinAktif.Checked = false;
                    rbRehinHepsi.Checked = false;
                    Session["TuzelKisiRehinTapuBolumDurum"] = TapuBolumDurum.Pasif;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void rbRehinHepsi_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (rbRehinHepsi.Checked == true)
                {
                    rbRehinAktif.Checked = false;
                    rbRehinPasif.Checked = false;
                    Session["TuzelKisiRehinTapuBolumDurum"] = TapuBolumDurum.Hepsi;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvRehin_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["secilenTuzelKisiRehinleri"] != null)
                {
                    gvRehin.PageIndex = e.NewPageIndex;
                    gvRehin.DataSource = ViewState["secilenTuzelKisiRehinleri"];
                }
                else
                    gvRehin.DataSource = null;
                gvRehin.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvRehin_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvRehin_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "TapuBolumDurum")) == "Pasif")
                    e.Row.ForeColor = System.Drawing.Color.Red;

                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gvRehin, "Select$" + e.Row.RowIndex);
                    e.Row.ToolTip = "Click to select this row.";
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void SatirIsaretle(GridViewRowEventArgs e)
        {
            try
            {
                //mause gridin üzerine geldiğinde satırlar işaretlensin diye yaptım
                if (e.Row.RowType != DataControlRowType.DataRow)
                    return;
                // eger yaratilan satir farkliysa data satirindan buradan cik 
                e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#F0FFFF'");
                // mouse overina bu stil attribute'ini ekle 
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
                // mouse out ise eski stile don
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvTuzelKisi_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["tuzelKisiBilgiList"] != null)
                {
                    gvTuzelKisi.PageIndex = e.NewPageIndex;
                    gvTuzelKisi.DataSource = ViewState["tuzelKisiBilgiList"];
                }
                else
                    gvTuzelKisi.DataSource = null;
                gvTuzelKisi.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvTuzelKisi_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void gvTuzelKisi_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "AktifMi")) == "Pasif")
                    e.Row.ForeColor = System.Drawing.Color.Red;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void MesajVer(string mesaj)
        {
            ClientScript.RegisterStartupScript(this.GetType(), " Uyarı.. ", "ShowPopup('" + mesaj + "');", true);
        }
        protected void SorguTiplerineGit()
        {
            try
            {
                divGetirTuzelKisiBilgiIDden.Visible = false;
                divGetirTuzelKisiBilgi.Visible = false;
                divgvTuzelKisi.Visible = false;
                divgvRehin.Visible = false;
                divTuzelKisiSorgulamaKriter.Visible = true;
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void lnkSorguTiplerineGit_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }

        protected void lnkSorguTiplerineGit1_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }

        protected void lnkSorguTiplerineGit2_Click(object sender, EventArgs e)
        {
            SorguTiplerineGit();
        }
    }
}
